/**
 * Copyright (c) 2008 Luciano Bustos - riaevolution.com, All Rights Reserved.
 * 
 * Contact luchyx@riaevolution.com
 * See www.riaevolution.com
 *  
 * Permission is hereby granted, free of charge, to any person obtaining a copy of 
 * this software and associated documentation files (the "Software"), to deal in 
 * the Software without restriction, including without limitation the rights to
 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
 * of the Software, and to permit persons to whom the Software is furnished to do
 * so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in all 
 * copies or substantial portions of the Software.
 * 
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE. 
 * */
 
package com.riaevolution.components
{
	import flash.events.Event;
	
	import mx.containers.Canvas;
	import mx.controls.Image;
	import mx.controls.Text;

	public class PrintableAlert extends Canvas
	{
		private var _text:Text;
		private var _img:Image;
		
		public function PrintableAlert()
		{
			super();
		}
		
		override protected function createChildren():void {
			super.createChildren();
			if(!_text) {
				_text = new Text();
				_text.selectable = false;
				addChild(_text);
			}
			if(!_img) {
				_img = new Image();
				addChild(_img);
			}
		}
		override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
			super.updateDisplayList(unscaledWidth,unscaledHeight);
			var icon_size:Number = 18;
			if(_text) {
				_text.x =_text.y = 0;
				//trace(this.getStyle('paddingLeft'));
				_text.width = unscaledWidth - icon_size;	
				_text.height = unscaledHeight - icon_size;
			}
			if(_img) {
				_img.x = unscaledWidth - icon_size - 2;
				_img.y = unscaledHeight - icon_size - 2;
				_img.height = _img.width = 18;
				_img.source = icon;
			}
		}
		
		override protected function commitProperties():void {
            super.commitProperties();   
            if(_textChanged) {
                _text.htmlText = _htmlt;
              	_textChanged = false;
            }
        }
        private var _textChanged:Boolean = false;
        private var _htmlt:String;
        [Bindable("htmlTextChange")]
        public function get htmlText():String {
        	return _htmlt;
        }
        public function set htmlText(html:String):void {
        	_htmlt = html;
        	_textChanged = true;
        	dispatchEvent(new Event('htmlTextChange'));
        }
	}
}